# #coding=utf-8
# # 输入一个整数n
# n =  int(input())
# # 请在此添加代码，对输入的整数进行判断，如果是素数则输出为True，不是素数则输出为False
# #********** Begin *********#
# def prime(n):
#     if n<=1:
#         return False
#     i = 2
#     while i<n:
#         if n%i==0:
#             return False
#         i+=1
#     return True
# print(prime(n))
# #********** End **********#

#判断字符串是否是回文
#回文：将字符串逆转之后，与原字符串相同
# def fun(s):
#     # **********Program**********
#     a = reversed(list(s))
#     if list(a) ==list(s): # 将if语句补充完整
#         return True
#     else:
#         return False
#     # **********  End  **********
#
#
# def main():
#     s = input("【请输入一个5位字符:】")
#     if len(s) != 5:
#         s = input("【输入错误，请重新输入:】")
#     else:
#         if fun(s):
#             print("%s是【回文数】" % s)
#         else:
#             print("%s不是【回文数】" % s)
#
#
# if __name__ == '__main__':
#     main()



#水仙花数
# def fun(i):
#     #**********Program**********
#     ge = i%10
#     shi = i//10%10
#     bai = i//100
#     if ge**3+shi**3+bai**3==i:
#         return 1
#     return 0
#
#
#     #**********  End  **********
#
# def main():
#
#     a = int(input("【请输入一个三位数，并按回车确认:】"))
#     flag=fun(a);
#     if flag:
#         print("%d是【水仙花数】" %a);
#     else:
#         print("%d不是【水仙花数】" %a);
# if __name__ == '__main__':
#     main()


#编写函数main找出1000以内的所有完数
#说明：一个数若恰好等于它的真因子（即除了本身以外的约数）之和，这个数就称为完数。
#完数：一个数如果恰好等于它的因子之和，这个数就是完数，如6=1+2+3.
#因子就是所有可以整除这个数的数，不包括自身
# def main():
#     x=1
#     while x<1001:
#     #**********Program**********
# #建立一个空列表，再用for循环，老师上课讲过
#         lists = []
#         for i in range(1,x):
#             if x%i==0:
#                 lists.append(i)
#
#     #**********  End  **********
#         if x == sum(lists):
#             print("【完数为：】%d"%x)
#             print("【它的真因子为：】%s"%lists)
#         x+=1
#
# if __name__ == '__main__':
#     main()



'''------------------------------------------------------
【程序设计】
---------------------------------------------------------

题目：古典问题：有一对兔子，从出生后第3个月起每个月都生
      一对兔子，小兔子长到第三个月后每个月又生一对兔子，
      假如兔子都不死，问每个月的兔子总数为多少？

说明：rabbit()函数的功能是根据输入的月数返回兔子对数

---------------------------------------------------------
注意：部分源程序给出如下。请勿改动主函数main和其它函数中的
      任何内容，仅在函数的注释标志之间填入所编写的若干语句。

      请用for语句编写
------------------------------------------------------'''
def rabbit(num):
    #**********Program**********
    #提示：第一步当num为1和2的时候，返回值为1
    #提示：第二步其它情况下，前面相邻两项之和，构成了后一项（tz=rabbit(num-2)+rabbit(num-1)，返回值为tz）
    if num<=2:
        return 1
    else:
        tz = rabbit(num - 2) + rabbit(num - 1)
        return tz


    #**********  End  **********

def main():
    n = int(input("【查看第几个月的兔子对数：】"))
    rabbit_sum = rabbit(n)
    print("【第%d个月的兔子对数为】%d"%(n,rabbit_sum))
if __name__ == '__main__':
    main()
